home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / libg_261.zip / libg_261 / libg++ / README < prev    next >
Text File  |  1994-10-24  |  10KB  |  253 lines

  1. This is version 2.6.1 of libg++, the GNU C++ class library.
  2. Release date October 1994 by Cygnus Support
  3.  
  4. * Please skim through this once BEFORE attempting to make and install libg++.
  5.  
  6. * Contents
  7.  
  8.     * g++ source files (with their include files) are in the ./src directory
  9.     * Some simple tests and demo programs are in ./tests
  10.     * documentation is in ./libg++.texi.
  11.     * A perfect hash function generator is in ./gperf.
  12.     * Some miscellaneous files of possible interest are in ./etc
  13.       (These files are not officially a part of the libg++ distribution,
  14.       and are subject to arbitrary changes, deletions, etc. from release
  15.       to release.)
  16.  
  17. * Copyright restrictions
  18.  
  19. The GNU Library General Public License (which is in the file
  20. ../COPYING.LIB) covers all libraries (specificly libg++.a) and
  21. include files that get installed (by 'make install').
  22.  
  23. Other parts of the libg++ *distribution* that are not part the libg++
  24. *library* per se have the GNU General Public License (which is in the
  25. file ../COPYING).
  26.  
  27. Individual files should bear the appropriate Copyright (let us know
  28. if you think there is a mistake).  But specificly, if your application
  29. only uses files that are installed by the normal build+install
  30. procedure, then it is bound by the restrictions of the GNU Library
  31. General Public License, but not those of the GNU General Public License.
  32.  
  33. * Pre-installation
  34.  
  35.     * This version of libg++ works best with gcc-2.6 or newer.
  36.       It assume that gcc is responsible for fixing standard C include
  37.       files (such as stdio.h) so that they are suitable for C++
  38.       (Using the new fixproto script that is part of gcc-2.6).
  39.  
  40.     * If you're using gcc-2.0 or 2.1 you may need to move aside any
  41.       installed g++-include header files installed from previous versions
  42.       of libg++, since they might conflict with the new ones.
  43.       This is not necessary if your version of gcc supports the
  44.       -nostdinc++ flag.
  45.  
  46.       In general, install a version of gcc (which now includes g++)
  47.       with at least as high a version number as this version of libg++.
  48.  
  49.       You can compile libg++ using a gcc that you haven't installed.
  50.       The most convenient way to do that is to make a symlink named
  51.       gcc in the top-level directory (i.e. libg++-2.6.1) that points to
  52.       the directory containing the new gcc.  (You should end up with
  53.       libg++/../gcc/xgcc being a valid filename for the uninstalled gcc.)
  54.  
  55.     * With only trivial modifications (like changing file extensions,
  56.       etc.) everything (perhaps except for some demos in ./etc)
  57.       should compile and run with any 2.0 C++ compiler. Please tell me
  58.       if this is not so.
  59.  
  60.       Exactly what changes you make depends on what part of libg++ you want.
  61.       If you don't want to use the libg++ version of iostreams,
  62.       edit 'IO_DIR=../libio' to 'IO_DIR=no-stream' in ../libio/config.shared.
  63.       You then need to 'make' with CC and CXX set appropriately.
  64.       You also need to set 'NOSTDINC=' on the make command line.
  65.  
  66. * Installation (see libg++.texi for more details)
  67.  
  68.     * For VMS, cd to ./vms, and read AAAREADME.TXT
  69.       [NOTE:  The VMS support is obsolete.  We need a volunteer to fix it.]
  70.  
  71.     * To build a SunOS4 shared library, see README.SHLIB.
  72.  
  73.     * Make sure your sed is *not* GNU sed version 1.12.
  74.       Most other versions (including GNU sed 1.13) should be OK.
  75.  
  76.     * Go to the directory *above* libg++ (i.e.. libg++-2.6.1).
  77.  
  78.     * If you have gcc-2.6.1, enable libstdc++ by uncommenting the
  79.       (second) definition of target_libs in ./configure.in.
  80.  
  81.     * Run './configure' to configure the tree and create Makefiles.
  82.  
  83.     Typical example:
  84.     ./configure [SYSTEM] --prefix=/usr/gnu
  85.  
  86.     The prefix says that installation should be into
  87.     /usr/gnu/lib, /usr/gnu/bin, etc as appropriate.
  88.  
  89.     The SYSTEM indicates what machine configuration you're
  90.     running on.  If you don't specify it, the system can usually
  91.     guess a default.
  92.  
  93.     IMPORTANT:  The configure options (including SYSTEM and
  94.     --prefix) must match those used to configure gcc, otherwise
  95.     g++ may fail to find libg++.
  96.  
  97.     See etc/cfg-paper.texi for more details.  (This paper is
  98.     in texinfo format;  see the section below on Installing
  99.     the Documentation on how to make it more readable.)
  100.  
  101.     * Type `make all "CC=gcc -O" "CXX=gcc -O"'.
  102.     (Builds libg++.a and some other things.)  (The "CC=gcc -O"
  103.     and "CXX=gcc -O" are optional.  They force use of gcc to compile
  104.     C and C++ programs, respectively.)
  105.  
  106.     * Optionally, type `make check' to make and run some tests/demos of libg++.
  107.  
  108.     * Before installing, if you have an old version that was installed
  109.     into the same directory(s), you should probably remove it.
  110.     (There is currently no clean mechanism to do that.
  111.     You should at least remove $(prefix)/lib/g++-include/*.h,
  112.     where $(prefix) is by default /usr/local.)
  113.  
  114.     If the previous version was libg++ 2.4 or older, you *must* remove
  115.     the old includes.  Prior to version 2.5, libg++ installed its own
  116.     versions of certain standard headers for use on systems where the
  117.     vendor headers don't include prototypes.  Versions 2.5 and later of
  118.     gcc add prototypes to vendor headers that don't have them, so
  119.     the libg++ versions are no longer useful, and are harmful when
  120.     they conflict with the vendor version.
  121.  
  122.     * Type `make install'  to install 
  123.  
  124.         libg++.a          (from .)
  125.         include files     (from src and ../libio)
  126.         prototype files   (from src/gen)
  127.         g++dep            (from etc)
  128.         some other stuff
  129.  
  130.     * Install the documentation
  131.  
  132.     If you are a systems administrator installing libg++ for others,
  133.     please make the documentation available to users!
  134.  
  135.     The libg++.texi file may be formatted as a paper document by
  136.  
  137.         * Get a copy of texinfo.tex. 
  138.             This file defines various tex macros used in libg++.texi
  139.             One is in the gcc release.
  140.             You can temporarily copy it into the current directory.
  141.         * Run tex on libg++.texi
  142.              and do whatever you normally do from there to print it.
  143.  
  144.     It may be made into an emacs info file:
  145.  
  146.     * use the 'makeinfo' program (from the texinfo distribution).
  147.  
  148.         * Copy these files into your emacs info directory
  149.             (normally somewhere like /usr/gnu/emacs/info).
  150.         * If you have not done so before, edit the emacs/info/dir file
  151.             to add a libg++ node, by inserting a line like
  152.         
  153.             * Libg++: (libg++).    The GNU C++ Library
  154.  
  155.             to the bottom of the file.
  156.  
  157.     * (Optional) Install, from ./etc
  158.         g++dep (a version of mkdep that understands c++)
  159.  
  160. * Notes on compiling and running libg++/tests
  161.  
  162. tCurses is not automatically run through `checktests'.
  163. You must run it manually:
  164.  
  165. tCurses attempts to place one of each curses library primitive (boxes,
  166. strings, numbers...) on your screen, and asks for some input, to test
  167. curses input routines. Since there is no way to describe the output
  168. in a system- and terminal- independent way, you will have to be the 
  169. judge of whether it works acceptably.
  170.  
  171. tCurses (and the curses-based classes generally) may fail on the
  172. Sequent and perhaps other systems with unusual or old curses library
  173. implementations if you do not end input with a <linefeed> instead of
  174. the normal <carriage-return>.
  175.  
  176. It is a very good idea to also cd to the test directory and run tests
  177. manually, to see what they do. 
  178.  
  179. Compiling and running the tests consumes a fair amount of time and
  180. disk space!
  181.  
  182. Some reported diffs may be perfectly reasonable, owing to things like
  183. floating point precision differences: The expected.out file was created
  184. on a Sun4/110.
  185.  
  186.     Some tRational and tFix results depend on floating point precision
  187.     and may generate slightly different output on different machines.
  188.  
  189.     tRandom seeds some random-numbers in a way that also relies on
  190.     floating-point representations -- Your output should be numerically
  191.     similar, but probably not identical.
  192.  
  193. * Changes since previous versions(s).
  194.  
  195.     See the file NEWS.
  196.  
  197. * Known bugs and problems
  198.  
  199.     * If "make install" fails with the error message:
  200.  
  201.     Static constructor test failed - see libg++.README
  202.  
  203.       this indicates an error in installing gcc.
  204.       C++ needs special linker support beyond that needed for C, to make
  205.       sure that static objects get initialized and destroyed properly.
  206.       Some linkers (including the GNU linker as well as linkers for
  207.       the Elf object file format) already provide the needed support.
  208.       In other cases, gcc (or g++) uses the "collect2" linker driver.
  209.       Gcc should by default do the right thing, but if you tell
  210.       gcc to assum the GNU linker (with the --with-gnu-linker option),
  211.       and then fail to correctly install GNU ld, you will lose.
  212.  
  213. * Lots of other information is in the libg++.texi file. It really is
  214.   very important to actually read the documentation before using 
  215.   library classes. Examination of the demo files in the test directory
  216.   may also be useful. (Note however, that the demo files are merely
  217.   designed to test examples of each class capability,
  218.   and are not especially good examples of client functions that might
  219.   use these classes.)
  220.  
  221. * There is now a gnu libg++ mailing list (bug-lib-g++@prep.ai.mit.edu) and
  222.   associated usenet gnu news group (gnu.g++.lib.bug).  (It is preferred
  223.   that messages be sent to the mailing list, rather than posted to
  224.   newsgroup.)  To subscribe or unsubscribe to the mailing list,
  225.   send a request to bug-lib-g++-request@prep.ai.mit.edu.
  226.  
  227. * You will be performing a valuable service if you use libg++
  228.    classes and report back any comments, and suggestions, or bugs,
  229.    preferably to the bug-lib-g++ list. Your feedback is extremely 
  230.    helpful in efforts to make libg++ as useful and reliable as possible.
  231.  
  232. * We continue to solicit
  233.  
  234.   * bug reports.
  235.   * suggestions.
  236.   * comments.
  237.   * questions about installing and using libg++
  238.   * other contributions to be incorporated into libg++.
  239.   * sample programs using libg++.
  240.  
  241.   Often, the best place to send such things is bug-lib-g++@prep.ai.mit.edu,
  242.   although direct mail is also welcome.
  243.  
  244. * Good luck!
  245.  
  246. Doug Lea <dl@oswego.edu> designed and implemented most of the classes,
  247. and was the original maintainer and "owner" of libg++.
  248. He has handed over "ownership" to Cygnus Support.
  249.  
  250. Per Bothner <bothner@cygnus.com> of Cygnus Support is now
  251. maintaining libg++.
  252. Cygnus Support, 1937 Landings Drive, Mountain View, CA 94043
  253.